package com.ruoyi.energy.service;

import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.energy.domain.vo.NyCheckMerBPVO;
import com.ruoyi.omp.api.domain.NyCheckMeter;
import com.ruoyi.omp.api.domain.vo.NyCheckMeterVO;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * 抄表录入Service接口
 *
 * @author cjie
 * @date 2021-07-29
 */
public interface INyCheckMeterService {
    /**
     * 查询抄表录入
     *
     * @param id 抄表录入ID
     * @return 抄表录入
     */
     NyCheckMeter selectNyCheckMeterById(String id);

     NyCheckMeter selectNyCheckMeterByIdAndFeeCycle(String meterId, Date feeCycle);

    /**
     * 查询抄表录入列表
     *
     * @param nyCheckMeter 抄表录入
     * @return 抄表录入集合
     */
     List<NyCheckMeter> selectNyCheckMeterList(NyCheckMeter nyCheckMeter);

    /**
     * 新增抄表录入
     *
     * @param nyCheckMeter 抄表录入
     * @return 结果
     */
     int insertNyCheckMeter(NyCheckMeter nyCheckMeter);

    /**
     * 修改抄表录入
     *
     * @param nyCheckMeter 抄表录入
     * @return 结果
     */
     int updateNyCheckMeter(NyCheckMeter nyCheckMeter);

    /**
     * 批量删除抄表录入
     *
     * @param ids 需要删除的抄表录入ID
     * @return 结果
     */
     int deleteNyCheckMeterByIds(String[] ids);

    /**
     * 删除抄表录入信息
     *
     * @param id 抄表录入ID
     * @return 结果
     */
     int deleteNyCheckMeterById(String id);

    //NyCheckMeterWXVO selectWXNyCheckMeterById(String id);

    String importNyCheckMeter(List<NyCheckMeter> checkMeters);

    List<NyCheckMeter> genImportTemplate(NyCheckMeter nyCheckMeter);

    //@Params feeCycle，meterType,parkNum，
    List<NyCheckMeterVO> selectCheckMeterList(NyCheckMeter checkMeter);

    //@Params feeCycle，meterType,parkNum，
    List<NyCheckMeterVO> selectCheckMeterSumAndPrivateList(NyCheckMeter checkMeter);

    BigDecimal computePrivateSummary(NyCheckMeter nyCheckMeter);

    int computeNyMeterSummary(String id);

    int computeNyMeterSummary(NyCheckMeter nyCheckMeter);

    int computeNyMeterSummaryAll(NyCheckMeter nyCheckMeter);
    AjaxResult computeNyMeterSummaryAllPlus(NyCheckMeter nyCheckMeter);

    Boolean getIsCompleted(NyCheckMeter nyCheckMeter);

    NyCheckMeterVO selectNyMeterCheckVO(NyCheckMeter nyCheckMeter);

    Map<String, BigDecimal> energyTrend(NyCheckMeter nyCheckMeter);

    List<NyCheckMerBPVO> energyRecord(NyCheckMeter nyCheckMeter);

    String computeSum(String parkNum, String meterType, Date month);
}
